﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.OleDb;
using System.Text;
using System.Windows.Forms;
using DTO;

namespace DAO
{
    public class DangNhapDAO
    {
        private static string ChuoiKetNoi = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=DB/DATA.mdb";

        protected static OleDbConnection MoKetNoi()
        {
            OleDbConnection KetNoi = new OleDbConnection(ChuoiKetNoi);
            KetNoi.Open();
            return KetNoi;
        }

        public static int DangNhap(DangNhapDTO lg, ref string ID)
        {
            string pass = string.Empty;
            string stakeholder = string.Empty;

            OleDbParameter ThamSo;
            OleDbConnection KetNoi = null;

            KetNoi = MoKetNoi();

            string CauTruyVan = "SELECT Username, Password, SH, SHID FROM Login WHERE Username = @Username";

            OleDbCommand Lenh = new OleDbCommand(CauTruyVan, KetNoi);

            ThamSo = new OleDbParameter("@Username", OleDbType.VarChar);
            ThamSo.Value = lg.Username;
            Lenh.Parameters.Add(ThamSo);

            OleDbDataReader data = Lenh.ExecuteReader();

            while (data.Read())
            {
                if (!data.IsDBNull(1))
                    pass = data.GetString(1);

                if (string.Compare(lg.Password, pass, true) == 0)
                {
                    if (!data.IsDBNull(2))
                        stakeholder = data.GetString(2);

                    if (!data.IsDBNull(3))
                        ID = data.GetString(3);

                    if (string.Compare(stakeholder, "Độc giả", true) == 0)
                    {
                    //    MessageBox.Show("Đăng nhập thành công : Độc giả");
                        return 1;
                    }
                    if (string.Compare(stakeholder, "Thủ thư", true) == 0)
                    {

                    //    MessageBox.Show("Đăng nhập thành công : Thủ thư");
                        return 2;
                    }
                    if (string.Compare(stakeholder, "Thủ kho", true) == 0)
                    {
                    //    MessageBox.Show("Đăng nhập thành công : Thủ kho");
                        return 3;
                    }
                    if (string.Compare(stakeholder, "Quản lý", true) == 0)
                    {
                    //    MessageBox.Show("Đăng nhập thành công : Quản lý");
                        return 4;
                    }
                }
                else
                {
                    MessageBox.Show("Đăng nhập thất bại ...\nSai mật khẩu !");
                    return 0;
                }
            }
            return 0;
        }

        public static bool KiemTra(DangNhapDTO lg)
        {
            OleDbParameter ThamSo;
            OleDbConnection KetNoi = null;
            try
            {
                KetNoi = MoKetNoi();

                string CauTruyVan = "SELECT Username FROM Login WHERE Username = @Username";

                OleDbCommand Lenh = new OleDbCommand(CauTruyVan, KetNoi);

                ThamSo = new OleDbParameter("@Username", OleDbType.VarChar);
                ThamSo.Value = lg.Username;
                Lenh.Parameters.Add(ThamSo);

                OleDbDataReader data = Lenh.ExecuteReader();
                if (!data.Read())
                {
                    MessageBox.Show("Tên đăng nhập không tồn tại !");
                    return false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Kết nối thất bại !");
                return false;
            }
            finally
            {
                if (KetNoi != null && KetNoi.State == System.Data.ConnectionState.Open)
                    KetNoi.Close();
            }
            return true;
        }
    }
}
